Base de données

library(readxl)
library(dplyr)

couche_ze_reg <- sf::read_sf('J:\\g_etstat\\Cartographie\\Fonds de cartes\\Usuels\\2020\\R32\\ZE parties régionales.shp') %>%
  sf::st_transform('+proj=longlat +datum=WGS84')

cho <-  read_excel("J:\\g_etstat\\Formations\\R cartographie dynamique\\Données\\Taux de chômage.xlsx")%>%
  rename(ze2020=CodeZE)

carte_cho <-  couche_ze_reg %>% left_join(cho,Taux, by=c("ze2020"="ze2020"))
class(carte_cho)
## [1] "sf"         "tbl_df"     "tbl"        "data.frame"

MapView

library(mapview)
mapview(carte_cho, zcol = "Taux", legend = TRUE)

Afficher plusieurs couches on peut appeler la fonction mapview() plusieurs fois via +, ce qui nous donne un champs d’action plus large. Le paramètre layer.name permet de définir le nom des layers. cex permet d’ajuster la taille des points en fonction des valeurs d’une variable.

mapview(carte_cho, zcol = "Taux", layer.name = "Taux de chômage") +
mapview(carte_cho, zcol = "pop", layer.name = "Population") 

tmap

library(tmap)

tmap_mode(mode = "view")

#La première colonne de la base de données correspond aux labels
carte_cho <-carte_cho%>%relocate(lb_clst)

tm_shape(carte_cho) +
  tm_polygons(col = "Taux") +
  tm_basemap()

Cette carte est interactive grâce au mode “view” dans tmap_mode().
tmap_leaflet() permet de créer un widget {leaflet} à partir de votre carte {tmap} statique, c’est à dire de transformer votre objet tmap en objet leaflet.

Il est possible d’ajouter différentes couches à notre carte avec plusieurs appels à tm_shape() et des enchaînements avec +.

  • la fonction tm_basemap() permet d’intégrer un fond de carte
  • la fonction tm_fill() est utilisée pour colorer les polygones en spécifiant la colonne de couleur, la palette de couleurs, l’opacité, …
  • la fonction tm_borders() indique comment afficher les contours des formes : couleur, épaisseur, …
  • la fonction tm_symbols() permet d’afficher des points en spécifiant, couleur, taille selon une variable, échelle, …

ggiraph

library(ggplot2)
library(ggiraph)
gg <- ggplot(carte_cho) +
  geom_sf_interactive(aes(fill = Taux,data_id = lb_clst,tooltip = paste0(Taux," % : ",lb_clst)))

girafe(ggobj = gg)

plotly

ggplotly : transformer un ggplot en plotly

Si vous êtes un pro de la cartographie avec {ggplot2}, c’est LA fonction à utiliser pour rendre vos cartes interactives.

library(plotly)
library(ggplot2)

carte_gg <- ggplot(carte_cho) +
  geom_sf(aes(fill = Taux), color = "white") 

# ggplotly, et la magie opère :
ggplotly(carte_gg)

plot_ly : fonction de base d'un graphe interactif

Il s’agit de la fonction la plus générale : elle permet de créer un objet plotly, qu’on veuille faire un simple graphe ou une carte. Il existe également une autre fonction spécifique pour les cartes plot_geo.

  • split est la variable affichée dans les labels
  • color identifie la variable à représenter
plot_ly(carte_cho, split = ~lb_clst, color = ~Taux) %>% 
  layout(showlegend = FALSE)